Contents of a Vector Data Stream
The types of atoms that can be included in a vector data stream are summarized in the following sections. For complete descriptions of these atoms, see
"Vector Atom Types"
.
Required Atoms
A QuickTime vector data stream must contain at least two types of atoms:
-
One or more
kCurvePathAtom
atoms, each of which specifies a path to draw.
Each path can contain up to 32767 contours, each of which may contain up to 32767 points. Each point may be located on or off the curve, with the curve describing a quadratic Bézier. For an overview of paths, see
"Path Shapes"
.
-
A
kCurveEndAtom
atom that marks the end of the vector data stream.
There can be only one
kCurveEndAtom
atom in a vector data stream, and it must be the last atom in the stream.
Atoms that Specify Path Attributes
Atoms that specify path attributes are optional. If the QuickTime vector codec has not found an atom in the data stream for a particular path attribute, it uses the default value for that attribute when drawing paths. If it does find an atom for a particular attribute, it uses its value when drawing subsequent paths in the data stream until the value is replaced by another atom of the same type or the end of the data stream is reached.
With one exception, any atom that specifies a path attribute can appear anywhere in a vector data stream, and there can be any number of atoms of the same type. The exception is the
kCurveMinimumDepthAtom
atom that specifies the minimum bit depth used to draw paths: there can be at most one
kCurveMinimumDepthAtom
atom in a vector data stream, and if included it must be the first atom in the stream.
These are the atoms that specify path attributes:
-
A
kCurveAntialiasControlAtom
atom enables or disables anti-aliasing for subsequent paths in the data stream. Anti-aliasing is a technique in which edges of the path that do not fall on pixel boundaries are be drawn by alpha blending the color of the path with the color of the background. The alpha values take into account errors introduced by the pixelization of the shape and give edges a smoother appearance.
-
A
kCurveARGBColorAtom
atom specifies the color of subsequent paths in the data stream.
-
A
kCurveFillTypeAtom
atom specifies the fill type for subsequent paths in the data stream. For more information about fill types, see
"Shape Fill"
.
-
kCurveGradientAngleAtom
,
kCurveGradientOffsetAtom
,
kCurveGradientRadiusAtom
,
kCurveGradientRecordAtom
, and
kCurveGradientTypeAtom
atoms specify attributes of gradient fills for subsequent paths in the data stream. Gradient fills are described in
"Gradients for Path Fills"
.
-
A
kCurveJoinAttributesAtom
atom specifies the type of join for subsequent paths in the vector data stream with sharp angles, and a
kCurveMiterLimitAtom
atom specifies the miter limit of joins, as described in
"Joins"
.
-
A
kCurveMinimumDepthAtom
atom specifies the minimum bit depth for drawing subsequent paths in the vector data stream. There can be at most one
kCurveMinimumDepthAtom
atom in a vector data stream, and if included it must be the first atom in the stream.
-
A
kCurvePenThicknessAtom
atom specifies the thickness of the stroke for subsequent framed paths in the vector data stream, as described in
"Pen Placement"
.
-
A
kCurveTransferModeAtom
specifies the transfer mode for drawing paths. For information about transfer modes, see
"Transfer Modes"
.
© 1997 Apple Computer, Inc.Previous | Chapter Top | Chapter Contents | Next